package com.github.florent37.hollyviewpager;
import android.graphics.Rect;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.nineoldandroids.animation.Animator;
import com.nineoldandroids.animation.AnimatorListenerAdapter;
import com.nineoldandroids.animation.ObjectAnimator;
import com.nineoldandroids.view.ViewHelper;
/**
* Created by florentchampigny on 07/08/15.
*/
public class HeaderHolder {
public View view;
public TextView textView;
public View card;
ObjectAnimator animator = null;
public HeaderHolder(View view, TextView textView, View card) {
this.view = view;
this.textView = textView;
this.card = card;
}
public HeaderHolder(View view) {
this.view = view;
this.textView = (TextView) view.findViewById(R.id.title);
this.card = view.findViewById(R.id.card);
}
public void setTitle(CharSequence title) {
this.textView.setText(title);
}
public void setHeightPercent(float percent) {
ViewGroup.LayoutParams layoutParams = card.getLayoutParams();
layoutParams.height = (int) (view.getLayoutParams().height * percent);
card.setLayoutParams(layoutParams);
}
public void enable() {
setEnabled(true);
}
public void disable() {
setEnabled(false);
}
public void setEnabled(boolean enabled) {
if (enabled)
ViewHelper.setAlpha(view, 1f);
else
ViewHelper.setAlpha(view, 0.5f);
}
public void animateEnabled(boolean enabled) {
if(animator != null) {
animator.cancel();
animator = null;
}
if (enabled) {
animator = ObjectAnimator.ofFloat(view, "alpha", 1f);
} else
animator = ObjectAnimator.ofFloat(view, "alpha", 0.5f);
animator.setDuration(300);
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
animator = null;
}
});
animator.start();
}
public boolean isEnabled() {
return ViewHelper.getAlpha(view) != 0.5f;
}
public boolean isVisible() {
Rect rect = new Rect();
return view.getGlobalVisibleRect(rect);
}
}